<template>
    <div class="jsgl">
        <div class="jsgl-top">
            <el-form :model="form" ref="form" label-width="80px" :inline="true" size="normal">
                <el-form-item label="角色名称">
                    <el-input v-model="jsmc" placeholder="请输入角色名称"></el-input>
                </el-form-item>
            </el-form>
            <div class="top-button">
                <el-button size="default"><i class="iconfont icon-sousuo"></i> 查 询</el-button>
                <el-button size="default" @click="chongzhi"><i class="el-icon-refresh"></i> 重 置</el-button>
                <el-button size="default" @click="delAll"><i class="el-icon-delete"></i> 删 除</el-button>
                <el-button class="search-btn" size="default" @click="xinzeng">
                    <i class="el-icon-plus"></i>
                    新 增
                </el-button>
            </div>
        </div>
        <div class="jsgl-middle">
            <el-table class="tableBox" :data="tables.slice((currentPage - 1) * pagesize, currentPage * pagesize)" stripe
                height="90%" border @selection-change="handleSelectChange" :row-class-name="tableRowClassName"
                :header-cell-style="{ background: '#b2dffe', color: '#000' }" style="width: 100%">
                <el-table-column type="selection" align="center" width="50">
                </el-table-column>
                <el-table-column type="index" label="序号" align="center" width="50" :show-overflow-tooltip="true">
                </el-table-column>
                <el-table-column prop="status" label="状态" width="100" :show-overflow-tooltip="true">
                    <template slot-scope="scope">
                        <el-switch v-model="scope.row.status" :active-value="1" :inactive-value="2"
                            active-color="#02538C" inactive-color="#B9B9B9" @change="changeSwitch(scope.row)">
                        </el-switch>
                    </template>
                </el-table-column>
                <el-table-column prop="jsmc" label="角色名称" width="250" :show-overflow-tooltip="true">
                </el-table-column>
                <el-table-column prop="xgr" label="修改人" width="250" :show-overflow-tooltip="true">
                </el-table-column>
                <el-table-column prop="xgsj" label="修改时间" :show-overflow-tooltip="true">
                </el-table-column>
                <el-table-column prop="beizhu" label="备注" :show-overflow-tooltip="true">
                </el-table-column>
                <el-table-column label="操作" width="100" align="center" :show-overflow-tooltip="true">
                    <template slot-scope="scope">
                        <i class="el-icon-edit" title="编辑" @click="bianji(scope.row)"></i>&nbsp;
                        <i class="el-icon-delete" title="删除" @click="deleteItem(scope.row)"></i>&nbsp;
                    </template>
                </el-table-column>
            </el-table>
            <div class="bottom">
                <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
                    :current-page.sync="currentPage" :page-size="pagesize" layout="total, prev, pager, next"
                    :total="tableData.length">
                </el-pagination>
            </div>
        </div>
        <!-- 新增和修改对话框 -->
        <el-dialog :visible.sync="xzdialogVisible" class="xzdhk" width="40%" :append-to-body="true">
            <div slot="title" class="dialog-title">
                <div class="button-right">
                    <span class="title-text" v-if="this.mmssgg == '新增'">新增角色</span>
                    <span class="title-text" v-if="this.mmssgg == '修改'">修改角色</span>
                </div>
            </div>
            <div class="center">
                <el-form :inline="false" :model="xzform" ref="xzform" label-position="right" label-width="85px">
                    <el-form-item label="角色名称">
                        <el-input v-model="xzform.jsmc" placeholder="请输入内容"></el-input>
                    </el-form-item>
                    <el-form-item label="状态">
                        <el-radio-group v-model="xzform.resource">
                            <el-radio label="正常"></el-radio>
                            <el-radio label="停用"></el-radio>
                        </el-radio-group>
                    </el-form-item>
                    <el-form-item label="菜单权限">

                    </el-form-item>
                    <el-form-item label="备注">
                        <el-input v-model="xzform.beizhu" placeholder="请输入内容" type="textarea"></el-input>
                    </el-form-item>
                </el-form>
            </div>
            <span slot="footer" class="dialog-footer">
                <el-button @click="xzdialogVisible = false">取 消</el-button>
                <el-button type="primary" @click="addBtn()">保 存</el-button>
            </span>
        </el-dialog>
        <!-- 修改对话框 -->
        <el-dialog :visible.sync="xgdialogVisible" width="40%" :append-to-body="true">
            <div slot="title" class="dialog-title">
                <div class="button-right">
                    <span class="title-text">修改角色</span>
                </div>
            </div>
            <div class="center">
                <el-form :inline="false" :model="xgform" label-position="right" label-width="85px">
                    <el-form-item label="角色名称">
                        <el-input v-model="xgform.jsmc" placeholder="请输入内容"></el-input>
                    </el-form-item>
                    <el-form-item label="状态">
                        <el-radio-group v-model="xgform.status">
                            <el-radio label="正常"></el-radio>
                            <el-radio label="停用"></el-radio>
                        </el-radio-group>
                    </el-form-item>
                    <el-form-item label="菜单权限">

                    </el-form-item>
                    <el-form-item label="备注">
                        <el-input v-model="xgform.beizhu" placeholder="请输入内容" type="textarea"></el-input>
                    </el-form-item>
                </el-form>
            </div>
            <span slot="footer" class="dialog-footer">
                <el-button @click="xgdialogVisible = false">取 消</el-button>
                <el-button type="primary" @click="updateBtn()">保 存</el-button>
            </span>
        </el-dialog>
    </div>
</template>
<script>
export default {
    data() {
        return {
            jsmc: '',
            // 主页头部表单
            form: {
                jsmc: '',//角色名称
            },
            // 组织机构下拉框数组内容
            zzjg: [{
                value: 'jlsslt',
                label: '吉林省水利厅'
            }, {
                value: 'jlsswszyjbcfj',
                label: '吉林省水文水资源局白城分局'
            }, {
                value: 'jlsslj',
                label: '吉林市水利局'
            }, {
                value: 'sysslj',
                label: '松原市水利局'
            }, {
                value: 'bssswj',
                label: '白山市水务局'
            }, {
                value: 'jlsswszyjbsfj',
                label: '吉林市水文水资源局白山分局'
            }, {
                value: 'jlsswszyjybfj',
                label: '吉林省水文水资源局延边分局'
            }, {
                value: 'jlsswszyjthfj',
                label: '吉林省水文水资源局通化分局'
            }],
            // 所属部门下拉框数组内容
            ssbm: [{
                value: 'bxmbcs',
                label: '部项目办测试',
            }, {
                value: 'bcfjdxsxmb',
                label: '白城分局地下水项目办'
            }, {
                value: 'csbm',
                label: '测试部门'
            }, {
                value: 'dxsxmb',
                label: '地下水项目办'
            }, {
                value: 'bsfjdxsxmb',
                label: '白山分局地下水项目办'
            }, {
                value: 'ybfjdxsxmb',
                label: '延边分局地下水项目办'
            }],
            // 主页表格内容
            tableData: [{
                status: 1,
                jsmc: '系统管理员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2018/12/26 16:11:00',//修改时间
                beizhu: '全部',//备注
            }, {
                status: 1,
                jsmc: '业务人员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2018/10/16 11:32:00',//修改时间
                beizhu: '-',//备注
            }, {
                status: 1,
                jsmc: '普通用户',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2022/3/9 14:16:00',//修改时间
                beizhu: '仅整编成果校核、超采区数据通报成果校核的查询功能',//备注
            }, {
                status: 1,
                jsmc: '普通用户',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2019/11/1 10:59:00',//修改时间
                beizhu: '仅整编成果校核、超采区数据通报成果校核的查询功能',//备注
            }, {
                status: 1,
                jsmc: '系统管理员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2019/6/8 16:58:00',//修改时间
                beizhu: '-',//备注
            }, {
                status: 1,
                jsmc: '业务人员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2020/3/9 17:45:00',//修改时间
                beizhu: '整编成果校核',//备注
            }, {
                status: 1,
                jsmc: '业务人员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2022/6/8 16:59:00',//修改时间
                beizhu: '无系统管理',//备注
            }, {
                status: 1,
                jsmc: '业务人员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2022/6/8 17:00:00',//修改时间
                beizhu: '数据提取',//备注
            }, {
                status: 1,
                jsmc: '普通用户',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2022/6/1 15:06:00',//修改时间
                beizhu: '仅整编成果校核、超采区数据通报成果校核的查询功能',//备注
            }, {
                status: 1,
                jsmc: '普通用户',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2022/6/1 15:06:00',//修改时间
                beizhu: '仅整数据提取的查询功能',//备注
            }, {
                status: 1,
                jsmc: '系统管理员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2018/12/26 16:11:00',//修改时间
                beizhu: '全部',//备注
            }, {
                status: 1,
                jsmc: '业务人员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2018/10/16 11:32:00',//修改时间
                beizhu: '-',//备注
            }, {
                status: 1,
                jsmc: '业务人员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2022/3/9 14:16:00',//修改时间
                beizhu: '-',//备注
            }, {
                status: 1,
                jsmc: '业务人员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2019/11/1 10:59:00',//修改时间
                beizhu: '数据提取',//备注
            }, {
                status: 1,
                jsmc: '系统管理员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2019/6/8 16:58:00',//修改时间
                beizhu: '-',//备注
            }, {
                status: 1,
                jsmc: '业务人员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2020/3/9 17:45:00',//修改时间
                beizhu: '整编成果校核',//备注
            }, {
                status: 1,
                jsmc: '业务人员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2022/6/8 16:59:00',//修改时间
                beizhu: '超采区数据通报成果校核',//备注
            }, {
                status: 1,
                jsmc: '业务人员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2022/6/8 17:00:00',//修改时间
                beizhu: '数据提取',//备注
            }, {
                status: 1,
                jsmc: '普通用户',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2022/6/1 15:06:00',//修改时间
                beizhu: '仅整编成果校核、超采区数据通报成果校核的查询功能',//备注
            }, {
                status: 1,
                jsmc: '普通用户',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2022/6/1 15:06:00',//修改时间
                beizhu: '仅整数据提取的查询功能',//备注
            }, {
                status: 1,
                jsmc: '系统管理员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2018/12/26 16:11:00',//修改时间
                beizhu: '全部',//备注
            }, {
                status: 1,
                jsmc: '业务人员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2018/10/16 11:32:00',//修改时间
                beizhu: '-',//备注
            }, {
                status: 1,
                jsmc: '普通用户',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2022/3/9 14:16:00',//修改时间
                beizhu: '仅整编成果校核、超采区数据通报成果校核的查询功能',//备注
            }, {
                status: 1,
                jsmc: '系统管理员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2019/11/1 10:59:00',//修改时间
                beizhu: '-',//备注
            }, {
                status: 1,
                jsmc: '系统管理员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2019/6/8 16:58:00',//修改时间
                beizhu: '-',//备注
            }, {
                status: 1,
                jsmc: '业务人员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2020/3/9 17:45:00',//修改时间
                beizhu: '整编成果校核',//备注
            }, {
                status: 1,
                jsmc: '业务人员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2022/6/8 16:59:00',//修改时间
                beizhu: '无系统管理',//备注
            }, {
                status: 1,
                jsmc: '业务人员',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2022/6/8 17:00:00',//修改时间
                beizhu: '数据提取',//备注
            }, {
                status: 1,
                jsmc: '普通用户',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2022/6/1 15:06:00',//修改时间
                beizhu: '仅整编成果校核、超采区数据通报成果校核的查询功能',//备注
            }, {
                status: 1,
                jsmc: '普通用户',//角色名称
                xgr: 'admin',//修改人
                xgsj: '2022/6/1 15:06:00',//修改时间
                beizhu: '仅整数据提取的查询功能',//备注
            }],
            // 底部页码 
            pagesize: 11,
            currentPage: 1,
            xzdialogVisible: false,
            // 新增对话框的表单
            xzform: {
                jsmc: '',
                resource: '',
                beizhu: ''
            },
            mmssgg: '',
            xgdialogVisible: false,
            xgform: {
                jsmc: '',
                resource: '',
                beizhu: ''
            },
            ids: [],
            multipleSelection: []
        }
    },
    methods: {
        handleSizeChange(val) {
            console.log(`每页 ${val} 条`);
        },
        handleCurrentChange(val) {
            this.yema.currentPage = val
        },
        // 表格的隔行颜色改变
        tableRowClassName({ row, rowIndex }) {
            if (rowIndex % 2 == 0) {
                return 'statistiss-row'
            } else {
                return ''
            }
        },
        // 重置
        chongzhi() {
            this.jsmc = ''
            this.pagesize = 11
            this.currentPage = 1
        },
        xinzeng() {
            this.mmssgg = '新增'
            this.xzdialogVisible = true
        },
        // 编辑
        bianji(row) {
            // console.log(row);
            this.xgdialogVisible = true
            this.xgform = row
            // console.log(this.xgform);
            this.xgform.jsmc = row.jsmc
            this.xgform.beizhu = row.beizhu
        },
        // 表格里面的删除
        deleteItem(row) {
            this.tableData.forEach((item, index) => {
                if (item.id == row.id) {
                    this.tableData.splice(index, 1)
                }
            })
            this.$message.success('删除成功')

        },
        // 获取多组选中数据
        handleSelectChange(val) {
            console.log(val);
            this.multipleSelection = val
            console.log(this.multipleSelection);
        },
        // 外面的删除
        delAll() {
            // 删除时arr接收选中数据的自增id
            let arr = []
            for (let i = 0; i < this.multipleSelection.length; i++) {
                arr.push(this.multipleSelection[i].jsmc)
            }
            // 将数组内的值从小到大排序，
            arr.sort()
            for (let a = 0; a < arr.length; a++) {
                // 这一步就已经删除成功了
                this.tableData.splice(arr[a] - a, 1)
            }
        },
        // 修改
        async updateBtn() {
            this.tableData.forEach((item, index) => {
                if (item.id == this.xgform.id) {
                    this.tableData[index] = this.xgform
                }
            })
            this.xgform = {}
            this.xgdialogVisible = false
            this.$message.success('修改成功')
        },
        // 添加
        async addBtn() {
            try {
                await this.$refs.xzform.validate()
                this.xzform.id = this.tableData.length + 1
                this.tableData.push(this.xzform)
                this.xzdialogVisible = false
                this.$message.success('新增成功')
                this.xzform = {}
            } catch (err) { return err }
        },
    },
    computed: {
        // 模糊查询
        tables() { //在你的数据表格中定义tabels
            let jsmc = this.jsmc
            if (jsmc) {
                // console.log("input输入的搜索内容：" + this.input)
                return this.tableData.filter(data => {
                    console.log("object:" + Object.keys(data))
                    return Object.keys(data).some(key => {
                        return String(data[key]).toLowerCase().indexOf(jsmc) > -1
                    })
                })
            }
            return this.tableData

        }
    }
}
</script>
<style lang="scss" scoped>
html,
body {
    height: 100%;
}

.jsgl {
    width: 100%;
    height: 100%;
    box-sizing: border-box;

    ::v-deep .jsgl-top {
        width: 97%;
        height: 10%;
        margin: 0 auto;
        display: flex;
        justify-content: space-between;
        box-sizing: border-box;
        /* border: 1px solid red; */

        .el-form {
            /* width: 68%; */
            height: 100%;
            float: left;

            .el-form-item {
                padding-top: .625rem;
                padding-right: .625rem;

                .el-form-item__label {
                    background-color: #0055ab;
                    color: #fff;

                    .el-input {
                        width: 11rem;

                        .el-input__inner {
                            width: 100%;
                        }
                    }
                }

                .el-form-item__content {
                    line-height: 0;
                }
            }
        }

        .top-button {
            /* width: 32%; */
            height: 100%;
            padding-top: .625rem;
            float: right;

            .el-button {
                background-color: #0055ab;
                color: #fff;

                .iconfont {
                    font-size: .875rem;
                }
            }
        }
    }

    ::v-deep .jsgl-middle {
        width: 97%;
        height: 90%;
        margin: 0 auto;
        box-sizing: border-box;

        .el-table {
            width: 100%;
            height: 90%;
            background-color: rgb(243, 243, 243);
            padding-top: .625rem;

            .el-table__header-wrapper {}

            .el-table__body-wrapper {
                .el-icon-delete:before {
                    font-size: 1rem;
                    cursor: pointer;
                }

                .el-icon-edit {
                    cursor: pointer;
                }
            }
        }

        .bottom {
            width: 100%;
            height: 10%;

            .el-pagination {
                position: absolute;
                bottom: 3%;
                right: 6%;
            }
        }
    }
}

/deep/ .el-dialog {
    width: 40%;
    height: 50%;
    box-sizing: border-box;

    /* 查看对话框标题的大小和颜色 */
    .el-dialog__header {
        box-sizing: border-box;
        padding-bottom: 1.25rem;
        background-color: #eee;
        height: 18%;

        .dialog-title {
            .button-right {
                span {
                    font-size: 1.25rem;
                    color: #0055ab;
                }
            }
        }
    }

    .el-dialog__body {
        padding: 0 30px;
        margin-top: 20px;
        box-sizing: border-box;
        height: 60%;

        .el-form {
            width: 100%;
            height: 100%;

            .el-form-item {
                margin-bottom: .375rem;

                .el-form-item__label {
                    /* background-color: #0055ab; */
                    /* color: #fff; */
                }

                .el-form-item__content {
                    .el-input {
                        width: 100%;

                        .el-input__inner {
                            width: 100%;
                        }
                    }
                }
            }
        }
    }

    /* 查看对话框底部下载按钮 */
    .el-dialog__footer {
        width: 100%;
        height: 22%;
        text-align: center;
        box-sizing: border-box;

        .el-button {
            background-color: #0055ab;
            color: #fff;
        }
    }
}

/* 查看对话框标题的大小和颜色 */
/deep/ .dialog-title {
    .button-right {
        span {
            font-size: 20px;
            color: #0055ab;
        }
    }
}


/* 控制top表单的宽度 */
/deep/.jsgl-top .el-input {
    width: 100% !important;

    .el-input__inner {
        width: 100%;
    }
}

// 滚动条的宽度
/deep/ .el-table__body-wrapper::-webkit-scrollbar {
    width: .375rem; // 横向滚动条
    height: .125rem; // 纵向滚动条 必写
}

// 滚动条的滑块
/deep/ .el-table__body-wrapper::-webkit-scrollbar-thumb {
    background-color: #ddd;
    border-radius: .1875rem;
}

/* 表格的行高 */
/deep/ .tableBox {
    th {
        padding: 0 !important;
        height: 3.125rem;
        line-height: 3.125rem;
    }

    td {
        padding: 0 !important;
        height: 2.5rem;
        line-height: 2.5rem;
    }
}


// 鼠标经过颜色
/deep/ .el-table__body tr:hover>td {
    background-color: #d9effe !important;
}

/* 列标题的字体颜色 */
/deep/ .el-table th.el-table__cell>.cell {
    color: #000;
}

/* 内容的字体颜色 */
/deep/ .el-table--enable-row-transition .el-table__body td.el-table__cell {
    color: #000;
}

/* 表格隔行改变的颜色 */
/deep/ .el-table__row.statistiss-row {
    background-color: #f2faff;
}

/* @media all and (max-width:720px) and (min-width:320px) {

    body {

        background-color: red;

    }

    @media all and (max-width:320px) {

        body {

            background-color: blue;

        }

    }
} */
/* 去掉滚动条上方的小方块背景色 */
/deep/ .jsgl-middle .el-table--border th.el-table__cell.gutter:last-of-type {
    background: rgb(243, 243, 243);
    border: none;
}

/deep/ .el-table thead.is-group th.el-table__cell {
    background-color: #b2dffe;
}
</style>